This invention works in conjunction with an industrial robot which can be programmed in a touch-up mode by a stereo vision system.
An industrial robot which can perform work on three dimensional objects has an arm which can orientate itself in space with six degrees of freedom, that is, movement in the x, y, z, pitch, yaw and clocking (roll) directions. The end of the robot arm is an end effector where a tool which is to perform the work on a workpiece is attached. An industrial robot must be programmed to bring the tool to the location at which work is to be performed. The robot performs this function by first orientating the robot arms in space to a programmed position, then a sliding mechanism actuates to place the end effector adjacent to the workpiece.
Industrial robots can be initially programmed by two methods. They are on-line programming and off-line programming. In on-line programing, the robot is placed in a teach mode. An operator then manually or by a manually actuated control system manipulates the robot arm to place the working tool or a representation of the working tool in the exact location on the workpiece where work is to be performed. The robot is then instructed to remember that location. The procedure is then repeated for each work location on the workpiece.
In off-line programming, physical drawings, computer designed drawing still on the computer (for example a CAD-CAM system), or the workpiece itself can be used to obtain a mathematical representation of the workpiece from which a program can be written and then programmed into the robot. This method is subject to more error than the first described method but is sufficiently accurate for many applications.
The present invention can be used with either initial programming technique to correct misalignment errors that were present either in the initial programming or errors that occurred after initial operation. The invention is particularly suited to correct misalignment errors that occur with the use of a drill blanket.
One major function of an industrial robot is to drill holes in a three dimensional object. To aid the robot in this function and to prevent damage to the workpiece, a drill blanket is used. The drill blanket contains bushings where the holes are to be drilled. An industrial robot is programmed to locate these bushings and place the tool so that it mates with the bushing. Because some drill operations take long periods of time, a more economic use of the robot can be made by having the robot place a drill at a specific location, the drill which contains a locking mechanism then will lock onto a bushing which has locking arms called an earlock. A bushing of this type is called a lock-on bushing. The robot will then direct the end effector to release the drill and go to a second location to pick up a second drill and move it to a third location. By this method, a robot arm can manipulate several drills over the workpiece.
Industrial Robots should ideally be able to place a tool in the exact location that work is to be performed, however this is not always possible. Industrial robots can use tools that are compliant, that is, able to compensate for some misalignment between the end position of the end effector and the bushing location. However, if the misalignment is great, the tool can not compensate for the misalignment and the tool, the workpiece, or the robot could be damaged because the end effector will continue to move toward the workpiece until it has completed its stroke.
Some industrial robot systems have the ability to place the robot in a touch-up mode to correct for misalignment. One form of a touch-up system uses a stereo vision system which comprises a stereo vision target, stereo vision cameras, and a program which can calculate the amount of misalignment.
A prior art stereo vision system operates as follows. Stereo vision cameras are placed on the end effector of the robot arm. The drill is removed to prevent damage due to the misalignment and the industrial robot is placed in the touch-up mode. The robot is then instructed to simulate the insertion of a tool in a bushing location. The robot arm first orientates itself in space in six degrees of freedom, then actuates the end effector with the stereo cameras mounted on it to move toward the bushing. The end effector then pauses at the end of the stroke.
The touch-up misalignment measurement continues with a workman now entering the working envelope of the robot and manually inserting a stereo vision target in the proper bushing. The stereo vision target has a pattern on its top which can be interpreted by the stereo vision system to give the exact orientation of the bushing to the input of the stereo vision system. The stereo vision system cameras mounted on the end effector then take a view of the stereo vision target for input into the stereo vision calculation system. The manually inserted stereo vision target when viewed by the stereo vision system provides an exact indication of the bushing orientation in the x, y, z, pitch, yaw and clocking (roll) direction to the final stroke position of the end effector. The stereo vision system compares this view with a preprogrammed representation of what a stereo vision target would appear like if the end effector was properly oriented with the bushing to insert a drill in that bushing.
The touch-up computer program can then take the difference between what is seen and what is required and adjust the programmed instructions for movement of the robot arm. The robot is then instructed to again cycle through a stroke and another comparison is made. If the misalignment is corrected, the next bushing location is then checked for proper alignment.
The touch-up mode is used when a robot has been working with a program that has worked well in the past, but because a workpiece or tool has been modified or the robot arm has been offset due to a collision, it is necessary to correct for misalignment. The use of a touch-up program is also common when a new program is generated off-line and is first implemented on a robot.
A prior art touch-up program normally will only be concerned with misalignment in five degrees or freedom, that is, misalignment in the x, y, z, pitch and yaw directions if the tool does not have to lock on to a bushing. However proper alignment in the clocking (roll) direction is critical if the industrial robot is used to place lock-on tools on the workpiece.
Because of the geometry of the lock-on bushing and the nature of the engaging mechanism on the tool, there are two possible problems with misalignment of the tool in the clocking direction. The locking mechanism on the bushing, that is the earlock, is located on the perimeter of the bushing with arms that extend above and partially over the bushing. The earlock engaging mechanism on a drill protrudes from each side and if misaligned in the clocking direction could encounter the top surface of the earlock as the drill begins insertion in the bushing. This will prevent full insertion of the drill and could damage the robot arm because the robot will continue to exert force until it has completed its stroke.
A more common problem occurs when the engaging mechanism on the drill does not engage the earlock because the engaging mechanism can only rotate (clock) a few degrees. The drill, upon insertion, must be oriented at the proper clocking location in order for the drill engaging mechanism, in its limited range of rotation (clocking) to lock the drill to the earlock. An accurate indication of the amount of clocking necessary to engage a tool to a lock-on bushing can be difficult to obtain when off-line programing is done since the earlock, which is located on the perimeter of the bushing, is not uniformly orientated throughout the three dimensional space as defined by the drill blanket. Even when on-line programing is done, it may be difficult to maintain the same clocking at each bushing from one workpiece to another since a different drill blanket may be used or, through handling the drill blanket, an earlock position could have been moved.
The use of a stereo vision system with a stereo vision target has made it possible to correct for misalignment errors in a touch-up mode as discussed above. However, touching up a robot program is time consuming since manual insertion of the stereo vision target is required for each bushing that requires the touch-up. Manual insertion is necessary because prior art does not teach how a stereo vision target which is to measure six degrees of misalignment direction (x, y, z, pitch, yaw and clocking) can be inserted by an end effector which is misaligned with a bushing, and also provide positional information to a stereo vision system.
The manual process can also be dangerous, since, in a effort to speed the process, a workman may stay within the working envelope of the robot arm. In addition, due to the slowness of the operation with the constant stop and start of the robot, inherent errors creep into the process. For example, the robot arm will not be operating within its normal parameters of its moving parts because these elements will not have time to reach and maintain their actual operating conditions for temperature and vibration.
There is another problem with current touch-up programing methods when vision targets are manually placed in a bushing. If the bushing is not a lock-on bushing, the vision target is held in place by a workman as each measurement is made by the stereo vision system and then removed so that the robot can stroke to determine if the new calculated position will cure the misalignment. If a workman does not hold the vision target correctly in the bushing over a series of measurement, an error will result that may go undetected until the robot is actually placed in operation. A form of this problem can also occur when a lock-on bushing is used. Even though the earlock on the bushing is used to secure the target, because a person is constantly removing the vision target to test the stroke and replacing it t recheck the misalignment, the workman in contact with the drill blanket could move it. This would throw off previously corrected program instructions.